#include"bsp_iic.h"
#include"MCT8316ADriver.h"
/*
IIC初始化，主要初始化两条总线和实例相关结构体
*/
 IIC_FAULT_STATUS iic_error_status; 
void iic_init(void)
{
  if(Wire.begin(17,18,100000)==1)
  {
   Serial.println("IIC_1_OK");
  }
  else 
  {
    Serial.println("IIC_1_error");
  }
   if(Wire1.begin(4,3,100000)==1)
  {
   Serial.println("IIC_2_OK");
  }
  else 
  {
    Serial.println("IIC_2_error");
  }
    // Wire.begin();
    // Wire1.begin();
  
}
/*
IIC1的发送函数实现，可以实现任意长度数据传输
形参有两个，第一个是传入数据指针，第二个为数据长度
*/
void IICTransmit_wire(uint8_t *data,uint8_t len)
{
 // uint8_t tx_buff[len];
  //tx_buff[len]=*data;
  uint8_t addr=0;
   Wire.beginTransmission(addr);
  for(int i=0;i<len;i++)
  {
     Wire.write(data[i]);
   //Serial.println(data[i]);
  }
  uint8_t error =Wire.endTransmission();
 //Serial.printf("endTransmission1: %u\n", error);

}
void IICTransmit_wire1(uint8_t *data,uint8_t len)
{
  //uint8_t tx_buff[len];
 // tx_buff[len]=*data;
  Wire1.beginTransmission(MCT8316A_Address);
  for(int i=0;i<len;i++)
  {
     Wire1.write(data[i]);
  }
  uint8_t error=Wire1.endTransmission();
  //Serial.printf("endTransmission2: %u\n", error);

}

void IICReceive_wire (uint8_t *data,uint8_t len)
{
  //uint8_t rx_buff[len];
  Wire.requestFrom(MCT8316A_Addressread,len);
  for(int i=0;i<len;i++)
  {
    //rx_buff[i]=Wire.read();
    data[i]=Wire.read();
  }
  
}

void IICReceive_wire1 (uint8_t *data,uint8_t len)
{
  //uint8_t rx_buff[len];
  Wire1.requestFrom(MCT8316A_Addressread,len);
  for(int i=0;i<len;i++)
  {
    data[i]=Wire1.read();
   
    
  }
 // *data=rx_buff[len];
}